Adaptive streaming techniques are designed to stream multimedia data over heterogeneous and dynamic computer networks. As the Internet has grown, additional protocols, security devices, and bandwidth management tools have been developed. Some of these devices and tools, such as firewalls and proxy servers, have blocked or interfered with different video transmission protocols. As a result, Hypertext Transfer Protocol (HTTP)-based video stream protocols have been used increasingly to ensure that video data is successfully transmitted to and viewable by users who are able to view standard HTTP traffic. HTTP based video streaming protocol also do not require special server software and are compatible with any firewall and proxy server that allows standard HTTP traffic. Adaptive streaming supports several alternate video streams at different bit rates. Client video players have been configured to select and/or switch between the different streams to select the best bit rate given network conditions. In the past, bitstream switching has only occurred on sync frames.
Players also have included a bitstream buffer to temporarily store the streamed video data once it has been received by the player. The buffer allows the streamed video data to be decoded without jitter caused by network bandwidth fluctuations. If the network bandwidth decreases sufficiently, the bitstream buffer may eventually get depleted. To prevent this, the player has been configured to switch to a lower bitrate stream that would reduce the likelihood of the buffer being depleted. Some players have also used a network bandwidth estimator to decide when the bandwidth has increased enough to support a switch to a higher bitrate stream. Bandwidth fluctuations and the transitions between different bitrate streams have resulted in sudden and immediately noticeable changes to the video quality perceived by users.
There is a need to minimize the suddenness and immediacy of changes to the video quality perceived by users due to bandwidth fluctuations and transitions between different bitrate streams.